Many modern server applications are designed such that the functions/features provided can be accessed from various client applications.
For example, a given server application may provide for access by a web client (e.g. a web-browser application installed on a mobile or desktop device), a desktop application client (i.e. a desktop application installed on a desktop computer), and/or a mobile application client (i.e. an application installed on a mobile device).
Providing multiple client options provides various benefits. For example, providing a web client allows use of the software application on any computing device with a web browser, regardless of whether a dedicated application (desktop or mobile) has been installed or not. On the other hand, a dedicated desktop or mobile application client may provide greater security, simplified authentication, allow users to access a richer set of features, and/or allow users to access features via a more sophisticated interface than can be provided via a website.
Where a desktop user has installed a dedicated desktop client, the user will typically prefer to use the desktop client over the web client. Automatically detecting whether not a desktop client has been installed, however, is not straight forward.